package com.charon.common.util;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

@Component
public class JedisUtils {
	
	@Autowired
	private JedisPool jedisPool;

	private Jedis getResource(){
		return jedisPool.getResource();
	}
	
	public byte[] set(byte[] key, byte[] value) {
		Jedis jedis=getResource();
		try{
			jedis.set(key, value);
			return value;
		}finally{
			jedis.close();
		}
	}
	
	/**
	 * @Description: 设置超时时间，单位为妙
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月19日 上午2:03:12 
	 * @param: @param key
	 * @param: @param i      
	 * @return: void
	 */
	public void expire(byte[] key, int i) {
		Jedis jedis=getResource();
		try{
			jedis.expire(key, i);
		}finally{
			jedis.close();
		}
		
	}

	public byte[] getValue(byte[] key) {
		Jedis jedis=getResource();
		try{
			return jedis.get(key);
		}finally{
			jedis.close();
		}
	}

	public void del(byte[] key) {
		Jedis jedis=getResource();
		try{
			jedis.del(key);
		}finally{
			jedis.close();
		}
		
	}

	public Set<byte[]> keys(String SHIRO_SESSION_PREFIX) {
		Jedis jedis=getResource();
		try{
			return jedis.keys((SHIRO_SESSION_PREFIX+"*").getBytes());
		}finally{
			jedis.close();
		}
	}	
}
